Skip to content

feat(compose): parse credential_spec, isolation, provider, use_api_socket and models#497

Merged
Jaro-c merged 1 commit into
developfrom
feat/compose-parse-new-keys
Jun 19, 2026
Merged

feat(compose): parse credential_spec, isolation, provider, use_api_socket and models#497
Jaro-c merged 1 commit into
developfrom
feat/compose-parse-new-keys

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Jun 19, 2026

Copy link
Copy Markdown
Member

Closes #481

Several standard Compose Spec keys previously fell into the unknown/extensions bucket and emitted a generic "unknown key" diagnostic, so users could not tell a no-op from a typo. This PR recognizes them explicitly:

  • credential_spec (service-level object: config/file/registry)
  • isolation (service-level string; distinct from the existing build.isolation)
  • provider (Compose v2.36 object: type + options)
  • use_api_socket (Compose v2.37.1 bool)
  • models (Compose v2.38 top-level element, alongside services/networks/volumes/secrets/configs)

Each now parses into its dedicated field (no longer landing in unknown/extensions) and warns via the existing ignored-fields diagnostics as "recognized but not honored" — podup/Podman rootless has no equivalent for any of them. This replaces the generic unknown-key noise and keeps podup's loud-over-silent convention. Typos inside the new sub-objects are still surfaced as unknown-key warnings.

No engine implementation yet — these keys parse and warn; they are not honored by the runtime. Additive only; no behaviour change for existing files.

Tests: parse unit tests proving each key deserializes into its field and produces no unknown-key diagnostic, plus diagnostics tests asserting the not-honored warning fires and that the recognized keys no longer trip the generic unknown-key path.

…cket and models

Several standard Compose Spec keys previously fell into the unknown/
extensions bucket and emitted a generic "unknown key" diagnostic, making
a no-op indistinguishable from a typo. Recognize them explicitly:

- credential_spec (service-level object: config/file/registry)
- isolation (service-level string; distinct from build.isolation)
- provider (Compose v2.36 object: type + options)
- use_api_socket (Compose v2.37.1 bool)
- models (Compose v2.38 top-level element)

These have no rootless Podman equivalent, so each is parsed for fidelity
and reported via the ignored-fields diagnostics as "recognized but not
honored" rather than the generic unknown-key noise, matching podup's
loud-over-silent convention. Typos inside the new sub-objects are still
surfaced. Additive only; no behaviour change for existing files.

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c Jaro-c merged commit f86f1a0 into develop Jun 19, 2026
13 checks passed
@Jaro-c Jaro-c deleted the feat/compose-parse-new-keys branch June 19, 2026 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant